package io.zhzhy.licensejwtdemo.license;

import cn.hutool.core.codec.Base64;
import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTUtil;
import cn.hutool.jwt.JWTValidator;
import cn.hutool.jwt.signers.JWTSigner;
import cn.hutool.jwt.signers.JWTSignerUtil;

/**
 * 授权验证工具
 */
public class LicenseValidationUtil {
    /**
     * 验证
     * @param licenseCode
     * @return
     */
    public static boolean valid(String licenseCode) {
        String token = Base64.decodeStr(licenseCode);
        String machineCode = MachineUtil.getMachineCode();
        JWTSigner signer = JWTSignerUtil.hs256("ldchina".getBytes());

//        JWTValidator.of(token).validateAlgorithm(signer).validateDate().
        JWT jwt = JWTUtil.parseToken(token).setSigner(signer);

        String machineCode2 = jwt.getPayloads().get("mc").toString();
        System.out.println(machineCode2);
        System.out.println(jwt.validate(24*3600));

//        if(machineCode.equals(machineCode2)) {
//            throw new RuntimeException("授权码不合规，如更换电脑或者主板相关信息后，请联系售后重新授权。");
//        }

        return machineCode.equals(machineCode2) && jwt.validate(24*3600);
    }
}
